1. Technical Field
The present invention relates generally to power/performance measurement and management in processing systems, and more particularly, to a power/performance measurement scheme that can determine average, minimum and maximum power and/or performance levels over multiple and arbitrary interval sizes from a small accumulated data set.
2. Description of the Related Art
Multiple processor servers and other medium to large-scale processing systems are increasingly incorporating sophisticated power measurement and management subsystems. Even operating systems executing within uniprocessor workstation systems, such as notebook computers that employ selectable or automatically selected power conservation modes, may benefit from monitoring software that displays the power consumption and/or performance history of the system.
Power and performance monitoring applications in external monitors and internally executing applications may have requirements for information update rates that differ substantially and multiple applications may require data simultaneously (e.g., in overlapping intervals). The internal power/performance monitoring subsystem typically has to store data at a rate higher than that corresponding to the shortest power/performance update interval of the monitor, and for accurate results, the update rate must either match each required data output rate or represent sufficient oversampling for accuracy. Such data storage requirements are undesirable, especially when a service processor is used to accumulate the data and the associated storage is limited. While the monitoring application may have no such constraints on its memory usage, it is also undesirable to have a high update bandwidth between the power/performance monitor and the application, as the service processor communications channel is typically used for other applications and is a limited resource. In a system without a service processor, it is typically undesirable to task a system processor at a high rate just to collect power/performance data.
It is therefore desirable to provide a method and system for collecting and processing power usage/performance mode data that provides for arbitrary update rates and for serving multiple applications and/or external monitors without requiring large data storage.